const token = uni.getStorageSync('token')

function request(url, data = {}, method = 'GET', header = {}) {
	return new Promise((resolve, reject) => {

		uni.request({
			url: `http://localhost:3000${url}`, // 使用环境变量配置基础 URL
			method: method,
			header: {
				'Content-Type': method === 'GET' ? 'application/x-www-form-urlencoded' :
					'application/json',
				...header, // 合并自定义请求头
				...(token ? {
					'Authorization': `Bearer ${token}`
				} : {}),
			},

			data: method === 'GET' ? data : data, // 根据请求方法格式化数据
			success: (res) => {
				if (res.statusCode === 200) { // 假设你的后端使用 200 作为成功状态码
					resolve(res.data); // 解析响应数据
				} else {
					reject(new Error(res.data.message || '请求失败')); // 拒绝并抛出错误
				}
			},
			fail: (err) => {
				reject(err); // 请求失败时拒绝
			},
		});
	});
}

export default request;